﻿using fasc_openapi_donet_sdk.Attributes;
using fasc_openapi_donet_sdk.Model.CommonModel;
using fasc_openapi_donet_sdk.Model.ResponseModel.ClientSignTask;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace fasc_openapi_donet_sdk.Model.RequestModel.ClientSignTask
{
    /// <summary>
    /// 创建签署任务(基于签署模板)
    /// </summary>
    [RemoteService("/sign-task/create-with-template", "POST")]
    public  class CreateSignTaskWithTemplateReq : BaseReq<CreateSignTaskWithTemplateRes>
    {
        public string signTaskSubject{ get; set; }
        public OpenId initiator{ get; set; }
        public string expiresTime{ get; set; }
        public bool autoInitiate{ get; set; }
        public bool autoFillFinalize{ get; set; }
        public bool autoFinish{ get; set; }
        public BusinessSceneInfo businessScene{ get; set; }
        public string signTemplateId{ get; set; }
        public CreateWithTemplateFillActorInfo[] fillActors{ get; set; }
        public CreateWithTemplateSignActorInfo[] signActors{ get; set; }
        public SignTaskCcActorInfo[] ccActors{ get; set; }
    }

    public class CreateWithTemplateFillActorInfo
    {
        public Actor fillActor{ get; set; }
        public CreateWithTemplateFieldValueInfo[] actorFields{ get; set; }
    }

    public class CreateWithTemplateFieldValueInfo
    {
        public int fieldDocId{ get; set; }
        public string fieldId{ get; set; }
        public string fieldName{ get; set; }
        public string fieldValue{ get; set; }
    }
    public class CreateWithTemplateSignActorInfo
    {
        public Actor signActor{ get; set; }
        public bool blockHere{ get; set; }
        public bool requestVerifyFree{ get; set; }
        public string[] verifyMethods{ get; set; }
    }
}
